package com.tjc.media.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 系统附件对象 t_attachment
 * 
 * @author å¤§æ ¹æä¼
 * @date 2025-09-23
 */
public class Attachment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 原始文件名 */
    @Excel(name = "原始文件名")
    private String fileName;

    /** COS文件key（唯一标识） */
    @Excel(name = "COS文件key", readConverterExp = "唯=一标识")
    private String fileKey;

    /** 文件访问URL */
    @Excel(name = "文件访问URL")
    private String fileUrl;

    /** 文件大小（字节） */
    @Excel(name = "文件大小", readConverterExp = "字=节")
    private Long fileSize;

    /** 文件类型 */
    @Excel(name = "文件类型")
    private String fileType;

    /** 文件扩展名 */
    @Excel(name = "文件扩展名")
    private String fileExtension;

    /** MIME类型 */
    @Excel(name = "MIME类型")
    private String mimeType;

    /** 存储桶名称 */
    @Excel(name = "存储桶名称")
    private String bucketName;

    /** 业务类型（1 歌曲文件；2 歌曲封面；3 歌词文件） */
    @Excel(name = "业务类型", readConverterExp = "1=,歌=曲文件；2,歌=曲封面；3,歌=词文件")
    private Integer bizType;

    /** 业务类型（1 歌曲文件；2 歌曲封面；3 歌词文件） */
    @Excel(name = "业务类型", readConverterExp = "1=,歌=曲文件；2,歌=曲封面；3,歌=词文件")
    private List<Integer> bizTypes;

    /** 业务ID */
    @Excel(name = "业务ID")
    private Long bizId;

    /** 业务ID */
    @Excel(name = "业务ID")
    private List<Long> bizIds;

    /** 文件描述 */
    @Excel(name = "文件描述")
    private String description;

    /** 上传用户ID */
    @Excel(name = "上传用户ID")
    private Long uploadUserid;

    /** 上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date uploadTime;

    /** 删除标志 */
    @Excel(name = "删除标志")
    private Integer isDeleted;

    /** 删除用户ID */
    @Excel(name = "删除用户ID")
    private Long deleteUserid;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deleteTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setFileName(String fileName)
    {
        this.fileName = fileName;
    }

    public String getFileName()
    {
        return fileName;
    }

    public void setFileKey(String fileKey)
    {
        this.fileKey = fileKey;
    }

    public String getFileKey()
    {
        return fileKey;
    }

    public void setFileUrl(String fileUrl)
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl()
    {
        return fileUrl;
    }

    public void setFileSize(Long fileSize)
    {
        this.fileSize = fileSize;
    }

    public Long getFileSize()
    {
        return fileSize;
    }

    public void setFileType(String fileType)
    {
        this.fileType = fileType;
    }

    public String getFileType()
    {
        return fileType;
    }

    public void setFileExtension(String fileExtension)
    {
        this.fileExtension = fileExtension;
    }

    public String getFileExtension()
    {
        return fileExtension;
    }

    public void setMimeType(String mimeType)
    {
        this.mimeType = mimeType;
    }

    public String getMimeType()
    {
        return mimeType;
    }

    public void setBucketName(String bucketName)
    {
        this.bucketName = bucketName;
    }

    public String getBucketName()
    {
        return bucketName;
    }

    public void setBizType(Integer bizType)
    {
        this.bizType = bizType;
    }

    public Integer getBizType()
    {
        return bizType;
    }

    public List<Integer> getBizTypes() {
        return bizTypes;
    }

    public void setBizTypes(List<Integer> bizTypes) {
        this.bizTypes = bizTypes;
    }

    public void setBizId(Long bizId)
    {
        this.bizId = bizId;
    }

    public Long getBizId()
    {
        return bizId;
    }

    public List<Long> getBizIds() {
        return bizIds;
    }

    public void setBizIds(List<Long> bizIds) {
        this.bizIds = bizIds;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }

    public void setUploadUserid(Long uploadUserid)
    {
        this.uploadUserid = uploadUserid;
    }

    public Long getUploadUserid()
    {
        return uploadUserid;
    }

    public void setUploadTime(Date uploadTime)
    {
        this.uploadTime = uploadTime;
    }

    public Date getUploadTime()
    {
        return uploadTime;
    }

    public void setIsDeleted(Integer isDeleted)
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted()
    {
        return isDeleted;
    }

    public void setDeleteUserid(Long deleteUserid)
    {
        this.deleteUserid = deleteUserid;
    }

    public Long getDeleteUserid()
    {
        return deleteUserid;
    }

    public void setDeleteTime(Date deleteTime)
    {
        this.deleteTime = deleteTime;
    }

    public Date getDeleteTime()
    {
        return deleteTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("fileName", getFileName())
            .append("fileKey", getFileKey())
            .append("fileUrl", getFileUrl())
            .append("fileSize", getFileSize())
            .append("fileType", getFileType())
            .append("fileExtension", getFileExtension())
            .append("mimeType", getMimeType())
            .append("bucketName", getBucketName())
            .append("bizType", getBizType())
            .append("bizId", getBizId())
            .append("description", getDescription())
            .append("uploadUserid", getUploadUserid())
            .append("uploadTime", getUploadTime())
            .append("isDeleted", getIsDeleted())
            .append("deleteUserid", getDeleteUserid())
            .append("deleteTime", getDeleteTime())
            .toString();
    }
}
